import time
from datetime import datetime, timedelta, date

"""
datetime模块主要用来处理日期时间
time模块则主要用于处理时间戳
"""

# 输出: 当前日期和时间，例如2024-08-19 14:30:45.123456
now_data_time = datetime.now()
print('当前时间日期', now_data_time, sep=':')
# 格式化日期时间
print('当前时间日期格式化为字符串', now_data_time.strftime("%Y-%m-%d %H:%M:%S"), sep=':')
# 增加10天
future = now_data_time + timedelta(days=10)
print('当前日期增加10天', future, sep=':')
# 减少5小时
past = now_data_time - timedelta(hours=5)
print("当前日期减少5个小时", past, sep=':')

# 字符串解析为时间日期类型
date_str = "2024-08-19 14:30:45"
date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(f'字符串{date_str}转时间日期类型', date_obj, sep=":")  # 输出: 2024-08-19 14:30:45

formatted_str = date_obj.strftime("%Y-%M-%d")
print(f'时间日期类型对象({date_obj})format成字符串', formatted_str, sep="->")  # 输出: 19-Aug-2024

print('---------------------------------------------------------------------------------------------------------------')

# 当前的日期
print('当前日期', date.today(), sep=':')
# format成字符串
print('当前日期格式化为字符串', date.today().strftime("%d-%b-%Y"), sep=':')

# 输出: 以秒为单位的浮点数时间戳
timestamp = time.time()
print(timestamp)
# 获取10位的时间戳
print("十位的时间戳", int(timestamp), sep=":")
# 获取13位的时间戳
print("十三位的时间戳", int(timestamp * 1000), sep=":")
# 将时间戳转换为本地时间的 struct_time 对象。
print(time.localtime(1724050009))

# 将时间戳格式化为字符串
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(current_time)  # 输出: 当前时间的字符串表示，例如 2024-08-19 14:30:45
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# 将字符串转换为datetime对象
dt = datetime.strptime("2023-05-31 17:14:10", "%Y-%m-%d %H:%M:%S")
timestamp = dt.timestamp()
print(timestamp)

print("Start")
time.sleep(2)
print("End")
